This invention relates to transport protocol transmission of data generated in a higher level protocol, including calculation and transmission of error check codes with only a single read process. The transport protocol may be any suitable protocol such as TCP, SCTP or other transport layer protocol.
When data streams such as iSCSI protocol are to be transmitted the are put into a transport protocol such as TCP (transmission control packet) PDUs (protocol data units) for transmission. These are often also called segments. The current method of generating and transmitting error check codes for iSCSI data in a TCP data stream involves reading the iSCSI data from memory into a functional block that calculates the iSCSI error check codes, which are then written back to the memory. Then a TCP functional unit reads the data and check codes from the memory for transmission. The problem with this is that it involves two read stages for each transmission.
The present invention is directed towards providing transport protocol transmission with only a single read procedure.
Accordingly the invention provides a method of transmitting data generated in an upper layer protocol in transport protocol data units that include error check codes and which requires only a single read from memory the method comprising reading the data from memory, generating error check codes, generating and transmitting one or more transport protocol data units making up data units of the upper layer protocol and inserting the error check codes into the transport protocol transmission.